package com.h3c.nem.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PsaTbTrainClassDTO {

    /**
     * 班级ID
     */
//    @JSONField(name = "classNo")
    @TableId
    private String classId;

    /**
     * 班级名称
     */
    private String className;

    /**
     * 班级类型：新员工培训（目前只有新员工培训）；其他培训等；
     */
    private String classType;

    /**
     * 班主任姓名/工号
     */
    private String mainTeacher;

    private String teacherId;

    @JSONField(name = "projectManagerId")
    private String mainTeacherId;

    /**
     * 其他教师姓名/工号
     */
    private String otherTeacher;

    /**
     * 开课日期
     */
//    @JSONField(name = "startDate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date beginDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
//    @JSONField(name = "endDate")
    private Date endDate;

    /**
     * 最大报名人数
     */
    private Integer maxLimit;

    /**
     * 创建人姓名/工号
     */
    private String creatorInfo;

    //    @JSONField(name = "userId")
    private String creatorId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date createTime;

    /**
     * 同步时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="Asia/Shanghai")
    private Date syncTime;

    /**
     * 班级备注
     */
    private String classRemark;

    /**
     * 排序字段 + 升序， -降序
     * 比如 +updateTime 根据 修改时间升序排序，-updateTime 根据 修改时间降序排序
     */
    private String orderBy;

    //学员数据
    @JSONField(name = "traineeList")
    private List<Map<String, Object>> traineeList;
}
